﻿//var idProveedorDetalle=0;

function InitUsuariosGrid() {
    $("#GridTableProveedors").flexigrid
			(
			{
			    url: '/ModuloProveedores.aspx?listado=true&',
			    dataType: 'json',
			    colModel: [
			    //id,clave,descripcion,idmarca,idcategoria,idfamilia,precio1,precio2,precio3,especifiaciones
				{display: 'No. Proveedor', name: 'id', width: 50, sortable: true, align: 'center' },
				{ display: 'Razon social', name: 'razonsocial', width: 260, sortable: true, align: 'left' },
                { display: 'Nombre Comercial', name: 'nombrecomercial', width: 290, sortable: true, align: 'left' },
                { display: 'Categoria', name: 'nombreCategoria', width: 165, sortable: true, align: 'left' },
			    //{ display: 'Vendedor Asignado', name: 'vendedorasignado', width: 120, sortable: true, align: 'left' },
				{display: 'Saldo Actual', name: 'saldoactual', width: 80, sortable: true, align: 'right' },
				{ display: 'Limite Credito', name: 'limitecredito', width: 80, sortable: true, align: 'right' }
				],
			    searchitems: [
				{ display: 'No. Proveedor', name: 'id' },
				{ display: 'Razon Social', name: 'RazonSocial', isdefault: true },
                { display: 'Nombre Comercial', name: 'NombreComercial' },
                { display: 'Categoria', name: 'NombreCategoria' }
				],
			    sortname: "id",
			    sortorder: "desc",
			    usepager: true,
			    title: 'Proveedores',
			    useRp: true,
			    width: 1020,
			    height: GridTotalHeight,
			    pagestat: 'Mostrando de {from} a {to} de un total de {total} registros',
			    pagetext: 'Pagina',
			    outof: 'de',
			    findtext: "Buscar <span style='font-size:8px;'>(presione Enter para realizar la busqueda)</span>",
			    procmsg: 'Procesando, Espere por favor ...',
			    nomsg: 'No hay registros',
			    resizable: false,
			    blockOpacity: 0.75,
			    onSuccess: function () { AddGridTotals('GridTableProveedors'); },
			    OnDoubleClick: function (id) { CargarPaginaProveedor('/ModuloProveedores.aspx?idProveedor='+id+'&detalle=true'); }
			}
			);


}


function CargarPanelEdicionProveedor() {
    var idProveedirActivo = $("#idRegistroProveedor").val();
    CargarPaginaProveedor('/ModuloProveedores.aspx?idProveedor='+idProveedirActivo+'&editar=true');
}

function InitProveedorDetalle() {
    $("#TableCotProveedor").flexigrid
			(
			{
			    url: '/ModuloCompras.aspx?listado=true&idProveedor=' + idProveedorDetalle + '&',
			    dataType: 'json',
			    colModel: [
			    //id,clave,descripcion,idmarca,idcategoria,idfamilia,precio1,precio2,precio3,especifiaciones
				{display: 'No. Cot.', name: 'id', width: 40, sortable: true, align: 'center' },
                { display: 'No. Ped.', name: 'NoPedido', width: 40, sortable: true, align: 'center' },
                { display: 'No. Rem.', name: 'NoRemision', width: 40, sortable: true, align: 'center', hide: true },
                { display: 'No. Sal.', name: 'NoSalida', width: 40, sortable: true, align: 'center' },
                { display: 'F. Cot.', name: 'fechaCreacion', width: 55, sortable: true, align: 'center' },
                { display: 'F. Ped.', name: 'FechaPedido', width: 55, sortable: true, align: 'center' },
                { display: 'F. Rem.', name: 'FechaRemision', width: 55, sortable: true, align: 'center', hide: true },
                { display: 'F. Sal.', name: 'FechaSalida', width: 55, sortable: true, align: 'center' },
				{ display: 'Razon social', name: 'nombreCliente', width: 310, sortable: true, align: 'left' },
                { display: 'Nombre Comercial', name: 'nombrecomercialcliente', width: 300, sortable: true, align: 'left', hide: true },
                { display: 'Total', name: 'total', width: 70, sortable: true, align: 'right' },
                { display: 'Pagado', name: 'saldoPagado', width: 70, sortable: true, align: 'right' },
				{ display: 'Pendiente', name: 'saldoPendiente', width: 70, sortable: true, align: 'right' },
                { display: 'Cre.', name: 'DiasCredito', width: 25, sortable: true, align: 'center' },
                { display: 'Ven.', name: 'DiasVencidos', width: 25, sortable: true, align: 'center' }
				],
			    searchitems: [
				{ display: 'No. Compra', name: 'id' },
				{ display: 'Razon Social', name: 'NombreCliente', isdefault: true },
                { display: 'Nombre Comercial', name: 'NombreComercialCliente' },
                { display: 'Total', name: 'Total' }
				],
			    sortname: "id",
			    sortorder: "desc",
			    usepager: true,
			    title: 'Compraes',
			    useRp: true,
			    width: 1020,
			    height: GridTotalHeight - 200,
			    pagestat: 'Mostrando de {from} a {to} de un total de {total} registros',
			    pagetext: 'Pagina',
			    outof: 'de',
			    findtext: "Buscar <span style='font-size:8px;'>(presione Enter para realizar la busqueda)</span>",
			    procmsg: 'Procesando, Espere por favor ...',
			    nomsg: 'No hay registros',
			    resizable: false,
			    blockOpacity: 0.75,
			    onSuccess: function () { AddGridTotals('TableCotProveedor'); },
			    OnDoubleClick: function (id) { $('#PestanaPanelCompras').click(); CargarPaginaCompraes('/ModuloCompras.aspx?idCompra=' + id + '&detalle=true'); }
			}
			);

}




function InitCuentasPorPagar() {
    var fInicial = $("#CxPFechaInicial").val();
    var fFinal = $("#CxPFechaFinal").val();
    $("#TableCxP").flexigrid
			(
			{
			    url: '/ModuloCompras.aspx?listado=true&todasCxP=true&fechaInicial=' + fInicial + '&fechaFinal=' + fFinal + '&',
			    dataType: 'json',
			    colModel: [
			    //id,clave,descripcion,idmarca,idcategoria,idfamilia,precio1,precio2,precio3,especifiaciones
				{display: 'No. Cot.', name: 'id', width: 40, sortable: true, align: 'center' },
			    //{ display: 'No. Factura', name: 'DiasCredito', width: 50, sortable: true, align: 'center' },
                {display: 'No. Ped.', name: 'NoPedido', width: 40, sortable: true, align: 'center', hide: true },
                { display: 'No. Rem.', name: 'NoRemision', width: 40, sortable: true, align: 'center', hide: true },
                { display: 'No. Sal.', name: 'NoSalida', width: 40, sortable: true, align: 'center', hide: true },
                { display: 'Fecha', name: 'fechaCreacion', width: 55, sortable: true, align: 'center' },
                { display: 'F. Ped.', name: 'FechaPedido', width: 55, sortable: true, align: 'center', hide: true },
                { display: 'F. Rem.', name: 'FechaRemision', width: 55, sortable: true, align: 'center', hide: true },
                { display: 'F. Sal.', name: 'FechaSalida', width: 55, sortable: true, align: 'center', hide: true },
                { display: 'Status', name: 'status', width: 95, sortable: true, align: 'left' },
				{ display: 'Razon social', name: 'nombreCliente', width: 310, sortable: true, align: 'left' },
                { display: 'Nombre Comercial', name: 'nombrecomercialcliente', width: 335, sortable: true, align: 'left', hide: true },
                { display: 'Total', name: 'total', width: 70, sortable: true, align: 'right' },
                { display: 'Pagado', name: 'saldoPagado', width: 70, sortable: true, align: 'right' },
				{ display: 'Pendiente', name: 'saldoPendiente', width: 70, sortable: true, align: 'right' },
                { display: 'Dias Credito', name: 'DiasCredito', width: 60, sortable: true, align: 'center' },
                { display: 'Dias Vencidos', name: 'DiasVencidos', width: 60, sortable: true, align: 'center' }
				],
			    searchitems: [
				{ display: 'No. Compra', name: 'id' },
				{ display: 'Razon Social', name: 'NombreCliente', isdefault: true },
                { display: 'Nombre Comercial', name: 'NombreComercialCliente' },
                { display: 'Total', name: 'Total' }
				],
			    sortname: "id",
			    sortorder: "desc",
			    usepager: true,
			    title: 'Cuentas por Pagar',
			    useRp: true,
			    width: 1020,
			    height: GridTotalHeight,
			    pagestat: 'Mostrando de {from} a {to} de un total de {total} registros',
			    pagetext: 'Pagina',
			    outof: 'de',
			    findtext: "Buscar <span style='font-size:8px;'>(presione Enter para realizar la busqueda)</span>",
			    procmsg: 'Procesando, Espere por favor ...',
			    nomsg: 'No hay registros',
			    resizable: false,
			    blockOpacity: 0.75,
			    onSuccess: function () { AddGridTotals('TableCxP'); },
			    OnDoubleClick: function (id) { $('#PestanaPanelCompras').click(); CargarPaginaCompraes('/ModuloCompras.aspx?idCompra=' + id + '&detalle=true'); }
			}
			);
}


function nuevoContactoProveedor() {
    var noContactos = parseInt($('#cantidadContactosProveedor').val());
    noContactos++;
    var plantillaContacto = $('#ContactoProveedorTemplate').html();
    plantillaContacto = plantillaContacto.replace(/IDCON/gi, noContactos);
    $("#ContenedorContactosProveedor").append(plantillaContacto);
    $("#ContactoDivProveedor" + noContactos).show();
    $('#cantidadContactosProveedor').val(noContactos);
    $("#celularContactoProveedor" + noContactos).mask("(999) 999-9999 Ext. ****");
    $("#telefonoContactoProveedor" + noContactos).mask("(999) 999-9999 Ext. ****");
    return noContactos;
}

function cargarContactoProveedor(id, nombre, apellidos, puesto, telefono, celular, email) {
    var idContacto = nuevoContactoProveedor();
    $("#ConctactoIdProveedor" + idContacto).val(id);
    $("#nombreContactoProveedor" + idContacto).val(nombre);
    $("#apellidosContactoProveedor" + idContacto).val(apellidos);
    $("#puestoContactoProveedor" + idContacto).val(puesto);
    $("#telefonoContactoProveedor" + idContacto).val(telefono);
    $("#celularContactoProveedor" + idContacto).val(celular);
    $("#emailUsuarioContactoProveedor" + idContacto).val(email.split('@')[0]);
    $("#emailDominioContactoProveedor" + idContacto).val(email.split('@')[1]);
}

function quitarContactoProveedor(idContacto) {
    $("#DialogoConfirmacionContactoProveedor").dialog({
        resizable: false,
        height: 240,
        width: 350,
        modal: true,
        buttons: {
            "Eliminar Contacto": function () {
                $("#ContactoDivProveedor" + idContacto).hide();
                $('#ConctactoEliminadoProveedor' + idContacto).val("true");
                $(this).dialog("close");
            },
            "Cancelar": function () {
                $(this).dialog("close");
            }
        }
    });
}

function nuevaCuentaProveedor() {
    var noContactos = parseInt($('#cantidadCuentasProveedor').val());
    noContactos++;
    var plantillaContacto = $('#CuentaProveedorTemplate').html();
    plantillaContacto = plantillaContacto.replace(/IDCON/gi, noContactos);
    $("#ContenedorCuentasProveedor").append(plantillaContacto);
    $("#CuentaDivProveedor" + noContactos).show();
    $('#cantidadCuentasProveedor').val(noContactos);   
    return noContactos;
}


function cargarCuentaProveedor(id, banco,cuenta,CLABE) {
    var idContacto = nuevaCuentaProveedor();
    $("#CuentaIdProveedor" + idContacto).val(id);
    $("#BancoCuentaProveedor" + idContacto).val(banco);
    $("#NumeroCuentaProveedor" + idContacto).val(cuenta);
    $("#CLABECuentaProveedor" + idContacto).val(CLABE);
}

function quitarCuentaProveedor(idContacto) {
    $("#DialogoConfirmacionCuentaProveedor").dialog({
        resizable: false,
        height: 240,
        width: 350,
        modal: true,
        buttons: {
            "Eliminar Contacto": function () {
                $("#CuentaDivProveedor" + idContacto).hide();
                $('#CuentaEliminadoProveedor' + idContacto).val("true");
                $(this).dialog("close");
            },
            "Cancelar": function () {
                $(this).dialog("close");
            }
        }
    });
}



function InicializarUIProveedor() {
    $("#idListaPrecios").buttonset();
    $("#idListaPrecios").css("width", "120px");
    $("#idListaPrecios input").css("width", "5px");
    $("#idListaPrecios span").css("width", "5px");
}


function AutocompletarCategoriasProveedors() {

    $("#CategoriaProveedor").autocomplete(ListaCategoriasClientes, {
        minChars: 0,
        width: 250,
        matchContains: "word",

        autoFill: false,
        formatItem: function (row, i, max) {
            return i + "/" + max + ": \"" + row.NombreCategoria;
        },
        formatMatch: function (row, i, max) {
            return row.NombreCategoria;
        },
        formatResult: function (row) {
            return row.NombreCategoria;
        }
    }).result(function (event, item) {
        with (item) {
            if (id != 0) {
                $("#idCategoriaProveedor").val(id);
            }
        }

    }).setOptions({ data: ListaCategoriasClientes });

}




function initModuloProveedors() {
    if ($('#cantidadContactosProveedor').val() == "0")
        nuevoContactoProveedor();
    if ($('#cantidadCuentasProveedor').val() == "0")
        nuevaCuentaProveedor();
    AutocompletarEstados("F_EstadoProveedor");
    AutocompletarEstados("EstadoProveedor");
    AutocompletarCategoriasProveedors();
    //AutocompletarDominios("EmailDominio");
    $("#TelefonoProveedor").mask("(999) 999-9999 Ext. ****");
    $("#Telefono2Proveedor").mask("(999) 999-9999 Ext. ****");
    $("#Telefono3Proveedor").mask("(999) 999-9999 Ext. ****");
    $("#FAXProveedor").mask("(999) 999-9999 Ext. ****");
    $("#RFCProveedor").mask("aaaa-999999-***");
    InicializarUIProveedor();
}


function CopiarDatosProveedor(desde, hacia) {
    $('#' + hacia + 'CalleProveedor').val($('#' + desde + 'CalleProveedor').val());
    $('#' + hacia + 'NumeroInteriorProveedor').val($('#' + desde + 'NumeroInteriorProveedor').val());
    $('#' + hacia + 'NumeroExteriorProveedor').val($('#' + desde + 'NumeroExteriorProveedor').val());
    $('#' + hacia + 'ColoniaProveedor').val($('#' + desde + 'ColoniaProveedor').val());
    $('#' + hacia + 'MunicipioProveedor').val($('#' + desde + 'MunicipioProveedor').val());
    $('#' + hacia + 'CiudadProveedor').val($('#' + desde + 'CiudadProveedor').val());
    $('#' + hacia + 'EstadoProveedor').val($('#' + desde + 'EstadoProveedor').val());
    $('#' + hacia + 'CPProveedor').val($('#' + desde + 'CPProveedor').val());
}

function showRequestProveedor() {
    if ($('#idRegistroProveedor').val() != "0")
        ProveedorNuevo = $('#idRegistroProveedor').val();
    NombreProveedorEditado = $('#RazonSocialProveedor').val();
    CrearLoaderDiv('#DivProveedors', 'DivProveedorsLoader');

}

function showResponseProveedor(responseText, statusText) {
    alert('this: ' + this.tagName +
            '\nstatus: ' + statusText +
            '\n\nresponseText: \n' +
            responseText + '\n\nThe output div should have already been updated with the responseText.');
}

function showAlertaProveedor() {
    if (ProveedorNuevo == "0")
        MostrarAlerta("El Proveedor " + NombreProveedorEditado + " ha sido dado de alta en el sistema correctamente");
    else
        MostrarAlerta("El Proveedor <b>" + NombreProveedorEditado + "</b> ha sido actualizado correctamente!!");
}

function ShowErrorProveedor(responseText, statusText) {
    MostrarError("<b>Error del sistema </b> Por favor verifique su informacion e intente de nuevo.");
    $("#DivProveedorsLoader").remove();
}

function ConfirmarBorrarProveedor() {

    var idregistro = $('#idRegistroProveedor').val();
    MostrarConfirmacion("De verdad quiere eliminar el registro Seleccionado?", "Eliminar Cotizacion", function () { CargarPaginaProveedor("/moduloProveedores.aspx?eliminar=true&idProveedor=" + idregistro); });

}


function imprimirRCxP() {
    $("#iframeLoader").attr("src", "");
    var contenido = $("#TableCxP").html();
    var fechaInicial = $("#CxPFechaInicial").val();
    var fechaFinal = $("#CxPFechaFinal").val();
    PostPrintReporte("CxP", contenido, fechaInicial, fechaFinal);
    //$("#iframeLoader").attr("src", "/ImpresionReporte.aspx?tipo=CxP&fechaInicial=" + fechaInicial + "&fechaFinal=" + fechaFinal + "&tablaReporte=" + contenido);
}